/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

import javax.microedition.midlet.*;

/**
 * @author USER
 */
/*--------------------------------------------------
 * SoundAlert.java
 *
 * Example from the book:     Core J2ME Technology
 * Copyright John W. Muchow   http://www.CoreJ2ME.com
 * You may use/modify for any non-commercial purpose
 *-------------------------------------------------*/
import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class SoundAlert extends MIDlet implements ItemStateListener, CommandListener {

    private Display display;      // Reference to display object 
    private Form fmMain;         // Main form
    private Command cmExit;      // Command to exit the MIDlet
    private ChoiceGroup cgSound; // Choice group

    public SoundAlert() {
        display = Display.getDisplay(this);

        // Create an exclusive (radio) choice group
        cgSound = new ChoiceGroup("Choose a sound", Choice.EXCLUSIVE);

        // Append options, with no associated images
        cgSound.append("Info", null);
        cgSound.append("Confirmation", null);
        cgSound.append("Warning", null);
        cgSound.append("Alarm", null);
        cgSound.append("Error", null);

        cmExit = new Command("Exit", Command.EXIT, 1);

        // Create Form, add components, listen for events
        fmMain = new Form("");
        fmMain.append(cgSound);
        fmMain.addCommand(cmExit);
        fmMain.setCommandListener(this);
        fmMain.setItemStateListener(this);
    }

    public void startApp() {
        display.setCurrent(fmMain);
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }

    public void commandAction(Command c, Displayable s) {
        if (c == cmExit) {
            destroyApp(false);
            notifyDestroyed();
        }
    }

    public void itemStateChanged(Item item) {
        switch (cgSound.getSelectedIndex()) {
            case 0:
                AlertType.INFO.playSound(display);
                break;

            case 1:
                AlertType.CONFIRMATION.playSound(display);
                break;

            case 2:
                AlertType.WARNING.playSound(display);
                break;

            case 3:
                AlertType.ALARM.playSound(display);
                break;

            case 4:
                AlertType.ERROR.playSound(display);
                break;
        }
    }
}
